package com.fulin.datastract.linked;
/**
*
* @description 反转单向链表
* @auther fulin16@crnet.com.hk
* @since 2020年1月7日 下午5:02:34
*
*/
//public class ReverseLinkedList {
//
//	/**
//	 * reverse linked list recursively,递归的方式反转单向链表
//	 * @param node
//	 * @return
//	 */
//	private LinkedNode reverse(LinkedNode node) {
//		if(node == null || node.getNext() == null) {
//			return node;
//		}
//		LinkedNode reversed = reverse(node.getNext());
//		node.getNext().setNext(node);
//		node.setNext(null);
//		return reversed;
//	}
//
//	/**
//	 * reverse linked list traversally,遍历的方式反转单向链表
//	 * @param node
//	 * @return
//	 */
//	private LinkedNode traversal(LinkedNode node) {
//		if(node == null || node.getNext() == null) {
//			return node;
//		}
//
//		LinkedNode temp = node.getNext();
//		while(temp != null) {
//			LinkedNode nnext = temp.getNext();
//			temp.setNext(node);
//			node.setNext(null);
//			node = temp;
//			temp = nnext;
//		}
//		return node;
//	}
//
//	/**
//	 * judge the linded list whether has a circular or not,判断链表中是否存在环,用哨兵来实现
//	 * @param head
//	 * @return
//	 */
//	private boolean cicleBySenttel(LinkedNode head) {
//		if(head == null || head.getNext() == null) {
//			return false;
//		}
//		LinkedNode slow = head;
//		LinkedNode fast = head.getNext();
//
//		while(slow != fast) {
//			if(fast == null || fast.getNext() == null) {
//				return false;
//			}
//
//			slow = slow.getNext();
//			fast = fast.getNext().getNext();
//		}
//		return true;
//	}
//}
